package com.higgins.client.agentapp.service;

import java.util.List;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import com.higgins.client.agentapp.datamodel.AdvertisedJobDTO;
import com.higgins.client.agentapp.datamodel.AgencyDTO;
import com.higgins.client.agentapp.datamodel.AgentDTO;
import com.higgins.client.agentapp.datamodel.CorrespondenceDTO;
import com.higgins.client.agentapp.datamodel.JobSiteDTO;
import com.higgins.client.dataModel.CoveringLetterDTO;
import com.higgins.client.dataModel.LawFirmDTO;
import com.higgins.client.dataModel.RecipientDTO;
import com.higgins.client.dataModel.RegionDTO;
import com.higgins.client.dataModel.SectorDTO;
import com.higgins.client.dataModel.StrategyDTO;
import com.higgins.client.dataModel.StrategyRecipientCountDTO;
import com.higgins.client.dataModel.StrategyRecipientDTO;

/**
 * The client side stub for the RPC service.
 */
@RemoteServiceRelativePath("agentapp")
public interface AgentAppService extends RemoteService {
	List<JobSiteDTO> retrieveJobSites() throws IllegalArgumentException;
	String updateJobSite(JobSiteDTO dto) throws IllegalArgumentException;
	List<AgencyDTO> retrieveAgencys() throws IllegalArgumentException;
	String updateAgency(AgencyDTO dto) throws IllegalArgumentException;
	List<AgentDTO> retrieveAgents(Long agencyId) throws IllegalArgumentException;
	String updateAgent(AgentDTO dto) throws IllegalArgumentException;
	List<AdvertisedJobDTO> retrieveAdvertisedJobs() throws IllegalArgumentException;
	List<AdvertisedJobDTO> retrieveAdvertisedJobsByAgencyId(Long agencyId) throws IllegalArgumentException;
	List<AdvertisedJobDTO> retrieveAdvertisedJobsByAgentId(Long agentId) throws IllegalArgumentException;
	String updateAdvertisedJob(AdvertisedJobDTO dto) throws IllegalArgumentException;
	Boolean deleteAdvertisedJob(Long  advertisedJobId) throws IllegalArgumentException;
	List<CorrespondenceDTO> retrieveCorrespondences(Long advertisedJobId) throws IllegalArgumentException;
	String updateCorrespondence(CorrespondenceDTO dto) throws IllegalArgumentException;
    Boolean deleteCorrespondence(Long  correspondenceId) throws IllegalArgumentException;
	
}
